home *** CD-ROM | disk | FTP | other *** search
/ ShareWare OnLine 2 / ShareWare OnLine Volume 2 (CMS Software)(1993).iso / games2 / rotise12.zip / REALP.C < prev    next >
C/C++ Source or Header  |  1992-04-03  |  4KB  |  158 lines

  1. /* realp.c
  2.  
  3.     Jonathan Arnold 1991
  4.  
  5.     Handle all the real player manipulations, like:
  6.         hide - remove player from free agent list
  7.         status - assign playing status to a player
  8. */
  9. #include <string.h>
  10.  
  11. #include "rotise.h"
  12.  
  13. /* External data referenced */
  14. extern CMDLIST CmdTable[];                    /* cmdtable.c */
  15. extern int Cmd;                                /* rotise.c */
  16. extern int InputLine;                        /*  Line # of current file */
  17. extern BOOL Verbose;                            /*  How talkative to be */
  18. extern char *InputFilename;                /*  Filename being read */
  19. extern RDB_TEAM *RotoTeams;                /* roster.c - First team in list */
  20. extern int Weeks;                                /* stenog.c - How many intervals read in */
  21. extern char IntvDate[MAX_DATE+1];        /*  Date string for current interval */
  22.  
  23. /* External routines used */
  24.     /* NONE */
  25.  
  26. /* Local data publicly available */
  27.     /* NONE */
  28.  
  29. /* Local routine prototypes */
  30. BOOL hide PROTO( ( int tokcnt, char *tokens[] ) );
  31. BOOL status PROTO( ( int tokcnt, char *tokens[] ) );
  32.  
  33. /* Private data */
  34.     /* NONE */
  35.  
  36. /*
  37.     BOOL hide( int tokcnt, char *tokens[] )
  38.      Remove a player from the free agent list.
  39.  
  40.  ACCEPTS:
  41.     int tokcnt - how many tokens on this line
  42.     char *tokens[] - array pointing to each token
  43.  
  44.  RETURNS:
  45.     BOOL <value> - TRUE if everything was okay, FALSE if things really aren't
  46. */
  47.  
  48. #define ARG_HID_PK1    1                        /* Player Key 1 - lastname */
  49. #define ARG_HID_PK2    2                        /* Player key 2 - firstname */
  50.  
  51. BOOL hide ARGLIST( (tokcnt, tokens) )
  52.     NFARG( int tokcnt )
  53.     FARG( char *tokens[] )
  54. {
  55.     PDATA *pdata;
  56.  
  57.     if ( tokcnt < ARG_HID_PK2 )
  58.         ARGCNT_ERR();
  59.  
  60.     pdata = pdb_pdata( tokens[ARG_HID_PK1], tokens[ARG_HID_PK2], TRUE );
  61.  
  62.     if ( pdata == NULL )
  63.     { /* no batter, check pitcher */
  64.         pdata = pdb_pdata( tokens[ARG_HID_PK1], tokens[ARG_HID_PK2], FALSE );
  65.         
  66.         if ( pdata == NULL )
  67.         { /* still no player, so complain */
  68.             rdb_error( "Hide - Player not found: ", tokens[ARG_HID_PK1] );
  69.             return TRUE;
  70.         }
  71.     }
  72.  
  73.     pdata->zorch = PLAYER_HIDDEN;
  74.  
  75.     return TRUE;
  76. }
  77.  
  78. /*
  79.     BOOL status( int tokcnt, char *tokens[] )
  80.      Give (or remove) player status string.
  81.  
  82.  ACCEPTS:
  83.     int tokcnt - how many tokens on this line
  84.     char *tokens[] - array pointing to each token
  85.  
  86.  RETURNS:
  87.     BOOL <value> - TRUE if everything was okay, FALSE if things really aren't
  88. */
  89.  
  90. #define ARG_STS_PK1        1                    /* Player key 1 - last name */
  91. #define ARG_STS_PK2        2                    /* Player key 2 - first initial */
  92. #define ARG_STS_SWORD    3                    /* Optional Stat word */
  93. #define ARG_STS_DATE        4                    /* Optional Date */
  94.  
  95. BOOL status ARGLIST( (tokcnt, tokens) )
  96.     NFARG( int tokcnt )
  97.     FARG( char *tokens[] )
  98. {
  99.     PDATA *pdata;
  100.  
  101.     if ( tokcnt < ARG_STS_SWORD )
  102.         ARGCNT_ERR();
  103.  
  104.     pdata = pdb_pdata( tokens[ARG_STS_PK1], tokens[ARG_STS_PK2], TRUE );
  105.  
  106.     if ( pdata == NULL )
  107.     { /* no batter, check pitcher */
  108.         pdata = pdb_pdata( tokens[ARG_STS_PK1], tokens[ARG_STS_PK2], FALSE );
  109.         
  110.         if ( pdata == NULL )
  111.         { /* still no player, so complain */
  112.             rdb_error( "Status - Player not found: ", tokens[ARG_STS_PK1] );
  113.             return TRUE;
  114.         }
  115.     }
  116.  
  117.    VERBOSE( 5, "Status for %s: ", tokens[ARG_STS_PK1] );
  118.    VERBOSE( 5, "%s.\n", tokens[ARG_STS_SWORD] );
  119.  
  120.     if ( tokcnt > ARG_STS_SWORD )
  121.     { /* given a status word */
  122.         if ( strlen( tokens[ARG_STS_SWORD] ) > 4 )
  123.         { /* too big */
  124.             rdb_error( "Status - Truncating status word: ", tokens[ARG_STS_SWORD] );
  125.             tokens[ARG_STS_SWORD][4] = '\0';
  126.         }
  127.         strcpy( pdata->status, tokens[ARG_STS_SWORD] );
  128.  
  129.         if ( tokcnt > ARG_STS_DATE )
  130.         { /* given a date too */
  131.             if ( strlen( tokens[ARG_STS_DATE] ) > MAX_DATE )
  132.             { /* too big tho */
  133.                 rdb_error( "Status - Truncating date string: ", tokens[ARG_STS_DATE] );
  134.                 tokens[ARG_STS_DATE][MAX_DATE] = '\0';
  135.             }
  136.             strcpy( pdata->date, tokens[ARG_STS_DATE] );
  137.         }
  138.         else
  139.         { /* use interval date */
  140.             strcpy( pdata->date, IntvDate );
  141.         }
  142.     }
  143.     else
  144.     { /* clear status and date */
  145.         memset( pdata->status, 0, 5 );
  146.         memset( pdata->date, 0, MAX_DATE );
  147.     }
  148.  
  149.    VERBOSE( 6, "Set status of %s to ", tokens[ARG_STS_PK1] );
  150.    VERBOSE( 6, " to %s on ", pdata->status );
  151.    VERBOSE( 6, "%s.\n", pdata->date );
  152.  
  153.  
  154.     return TRUE;
  155. }
  156.  
  157.  
  158.